<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>
<script>


/**
 *  将数字十进制 转为 十六进制，但 若 1 会转成 '01'
 *    为了 和 rgb2Hex 函数「组合」
 *
 * @example toHex(3) -> '03'
 * @example toHex(23) -> '17'
 *
 * @returns {String}
 */
function toHex(num) {
  var hex = num.toString(16);
  if (num < 16) {
    hex = `0${hex}`;
  }

  // 若 num > 255，即为摄影上的“过渡曝光”，
  // css中，颜色不可能大于 `ff` 即255，所以，但凡大于255，即重置为 255-'ff'
  if (num > 255) {
    hex = `ff`;
  }

  // 避免用户输入 负数
  // 但凡输入负数，重置为 `00`
  if (num < 0) {
    hex = `00`;
  }

  return hex;
}

/**
 * 将十进制颜色 转为 十六进制颜色
 *
 * @example rgb2Hex(3, 23, 199) -> '#0317c7'
 *
 * @param {Number} r
 * @param {Number} g
 * @param {Number} b
 *
 * @returns {String}
 */
function rgb2Hex(r, g, b) {
  return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
}

console.log(rgb2Hex(333, 23, 199)); // '#0317c7'


</script>